package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.common.core.domain.dto.SysWharfDto;
import com.ruoyi.common.core.domain.entity.system.SysWharf;

/**
 * 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。Service接口
 *
 * @author ruoyi
 * @date 2023-05-22
 */
public interface ISysWharfService {
    /**
     * 查询景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     *
     * @param wharfId 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。主键
     * @return 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     */
    public SysWharf selectWharfByWharfId(Long wharfId);

    /**
     * 查询景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。列表
     *
     * @param wharf 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     * @return 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。集合
     */
    public List<SysWharf> selectWharfList(SysWharf wharf);

    /**
     * 新增景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     *
     * @param wharf 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     * @return 结果
     */
    public int insertWharf(SysWharf wharf);

    /**
     * 修改景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     *
     * @param wharf 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     * @return 结果
     */
    public int updateWharf(SysWharf wharf);

    /**
     * 批量删除景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。
     *
     * @param wharfIds 需要删除的景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。主键集合
     * @return 结果
     */
    public int deleteWharfByWharfIds(Long[] wharfIds);

    /**
     * 删除景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。信息
     *
     * @param wharfId 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。主键
     * @return 结果
     */
    public int deleteWharfByWharfId(Long wharfId);

    List<SysWharfDto> getWharfListByScenicId(Long scenicId);
}
